Circuit of calculating errata locator and evaluator polynomial, calculating method thereof and reed-solomon decoder using the same

ABSTRACT

The present invention relates to a circuit for calculating an ELP and an EEP, and a Reed-Solomon decoder using the same. The circuit includes: first storage device for storing a syndrome value, coefficient values of the ELP, a discrepancy value and the size of a shortened code; second storage device for storing the coefficient values of the ELP, the reciprocal value of the discrepancy, the discrepancy value, the coefficient values of the ELP and the values obtained by differentiating the coefficient values of the ELP; first selecting device for selectively outputting the values stored in the first storage device in response to first to sixth control signals; second selecting device for selectively outputting the values stored in the second storage device in response to the control signals; multiplication device for multiplying the values selected by the first and second selecting means; third selecting means for selectively outputting the resultant values multiplied by the multiplication device in response to the control signals; third storage device for storing the resultant values selectively output by said third selecting device. Accordingly, the construction of the circuit becomes simple and a chip area can be reduced at the time of integration.

BACKGROUND OF THE INVENTION

The present invention relates to a Reed-Solomon decoder, and more particularly, to a Reed-Solomon decoder capable of reducing chip area by simplifying the circuit construction used for calculating an errata locator and evaluator polynomial.

One unavoidable problem in the communication field relates to errata generation due to channel noise. The Reed-Solomon decoder using a RS code is most superior in correcting burst errata.

The decoding order of the Reed-Solomon decoder is as follows.

Firstly, a syndrome is calculated from a receiving stream.

Secondly, an errata locator polynomial (ELP) is calculated from the syndrome.

Thirdly, an errata evaluator polynomial (EEP) is calculated from the syndrome and the ELP.

Fourthly, an errata location is determined from the ELP.

Fifthly, an errata value is calculated from the ELP and the EEP.

Sixthly, an errata pattern is calculated from the errata location and the errata value.

The ELP and the EEP are most important in controlling the performance and complexity of the decoder and can be obtained by using the Berlekamp-Massey Algorithm (BMA) and the Euclidean Algorithm (EA), respectively.

The parameter of the RS code is expressed as the following equation (1).

    Code length: n=q-1, q=2.sup.m

    Message length: k=n-2t

    Errata correcting capability: t=(n-k)/2

    Minimum distance: d.sub.min =2t+1                          (1)

where, m gives the scope of a Galois field. If m=8, the scope of the Galois field is 2⁸ (=256). Here, q gives the value of another parameter determined by m.

If α is a primitive element in the finite field, i.e., the Galois field GF (2^(m)), the generator polynomial of a t-tuple errata correction (n, k, t) RS code is expressed as the following equation (2). ##EQU1## where, coefficient g_(i) (0≦i≦2t) is an element of GF (2m) The code word of the RS code generated by the generator polynomial as in equation (2) can be obtained by expressing a remainder resulting from the division of an information polynomial (d(x)) by the generator polynomial as a parity check polynomial. The process is expressed by the following equation (3).

    x.sup.n-k d(x)=q(x)g(x)+γ(x)                         (3)

FIG. 1 is general block diagram of a conventional Reed-Solomon decoder.

In Fig.1, the Reed-Solomon decoder includes syndrome calculating circuit 10, ELP calculating circuit 12, EEP calculating circuit 14, Chien's searching circuit 16, errata calculating circuit 18, gate 20, buffer register 22 and errata correction circuit 24.

If the output of an encoder, the noise on the channel and a receiving vector are put to c(x), n(x) and r(x), respectively, the interrelation of these terms can be expressed as the following equation (4). ##EQU2## where, e(x) is an errata polynomial generated on the channel, T_(i) X^(i) is an error of which the size and location are not known and F_(j) X^(j) is an error of which only the size is not known, i.e., an erasure.

The first step of decoding is to calculate a syndrome polynomial (s(x)) from the receiving stream (r(x)) and it is possible to know whether the errata are included in the receiving stream from the syndrome value. Namely, if the syndrome value is 0, the errata are not included in the receiving stream and if not, the errata are included in the receiving stream. In decoding a t-tuple errata correction Reed-Solomon code, the syndrome can be obtained if α^(i) (1≦i≦2t), i.e., elements of finite field GF (2^(m)), are substituted in the receiving stream (r(x)). This process is expressed by the following equation (5).

    s.sub.i =r(a.sup.i) (1≦i≦2t)                 (5)

In order to correct the errata detected by the syndrome, it is most important to know the locations and the sizes of the errata. In order to know the locations and the sizes of the errata, the ELP and the EEP are needed. When ρ erasures and ν errors (1≦ρ/2+ν≦t) are generated, an erasure locator polynomial, an error locator polynomial and the errata locator polynomial are expressed by the following equation (6). ##EQU3##

In the above equation, σ_(F) (x) denotes the erasure locator polynomial, σ_(T) (x) denotes the error locator polynomial and σ(x) denotes the errata locator polynomial.

FIG. 2 is a flow chart of the BMA used in order to obtain the errata locator polynomial.

The BMA continually executes process for obtaining a minimum solution of the ELP σ(x). In each repeated step, the BMA should have the minimum solution with a coefficient satisfying a Newton's identical equation and a correction term related to a discrepancy.

The algorithm shown in FIG. 2 is explained as follows.

When n=o, it is initialized that b_(o) =1, σ_(o) =1, s_(o) =0, n_(o) =0, l_(o).sup.(1) =0 and l_(o) .sup.(2) =0 (step 30).

n is increased by 1 (step 32).

It is judged whether n is not less than ρ (ρ is the number of erasure) (step 34).

If n is not greater than ρ, (σ.sub.(x)).sup.(n+1) =(σ.sub.(x)).sup.(n) -μ.sub.ρ x(σ.sub.(x)).sup.(n), (b.sub.(x)).sup.(n+1) =(σ.sub.(x)).sup.(n+1), (l.sub.(n-1)).sup.(1) =(l_(n)).sup.(1) +1, and (l.sub.(n+1)).sup.(2) =l_(n).sup.(2) +1 (step 36).

If n is not less than ρ, it is judged whether n is 2t, where t is an errata correction capability (step 38).

If n is 2t, σ(x) becomes the ELP (step 40).

If n is not 2t, s is shifted to a right direction and a calculation according to the following equation is carried out (step 42). ##EQU4##

It is judged whether the discrepancy (d_(n)) is 0 (step 44).

If the discrepancy (d_(n)) is 0, the equations, (b.sub.(x)).sup.(n+1) =x(b.sub.(x)).sup.(n) and (l.sub.(n+1)).sup.(2) =(l_(n)).sup.(2) +1, are calculated (step 52).

If not, it is judged whether l_(n).sup.(1) >l_(n).sup.(2) (step 46) If the condition of the step 46 is not satisfied, (σ.sub.(x)).sup.(n+1), (b.sub.(x)).sup.(n+1), (l.sub.(n+1)).sup.(1) and (l.sub.(n+1)).sup.(2) are calculated (step 48).

If satisfied, a calculation according to the following equation is performed (step 50) and then step 52 proceeds.

    σ.sub.(x).sup.(n+1) =σ.sub.(x).sup.(n) -d.sub.n xb.sub.(x).sup.(n)

    l.sub.(n+1).sup.(1) =max l.sub.(n).sup.(1), l.sub.(n).sup.(2) +1!

After the step 52 is executed, step 32 proceeds.

These operations are carried out to obtain the ELP.

The EEP can be calculated by using the value of the syndrome and the coefficient of the ELP and a calculating method thereof is expressed by the following equation (7).

    Z(x)=1+(s.sub.1 +σ.sub.1) x+(s.sub.2 +σ.sub.1 s.sub.1 +σ.sub.2) x.sup.2 +. . . +(s.sub.ρ+μ +σ.sub.1 s.sub.ρ+μ-1 +σ.sub.2 s.sub.ρ+μ-2 +. . . +σ.sub.ρ+μ) x.sup.σ+μ               ( 7)

The ELP calculated by the above method is used for calculating the errate size.

In Reed-Solomon codes, the roots of the ELP are calculated in order to figure out the locations of the errata generated in the receiving stream, because the reciprocal values of the roots of the ELP show the locations where the errata are generated.

The Chien's detecting method is widely used as the method of calculating the roots of the ELP. The Chien's detecting method is used to figure out the locations of the errata generated in the receiving stream r(x) from the value of σ(α^(i)) obtained by substituting α^(i) (1 ≦i≦n), i.e., the element of GF (2^(m)), in the ELP σ(X). Namely, if the value of σ(α^(i)) is 0, the errata are included in the receiving stream r_(n-1) and if not, the errata are not included.

In the Reed-Solomon codes, since the symbol value of the receiving stream is non-dual value of GF (2^(m)), the errata values of the locations where the errata are generated should be calculated. The errata values are calculated in the following equation (8) from the coefficients of the EEL and the roots of the ELP. ##EQU5##

The last step of the decoding is to correct the errata generated in the receiving stream. The correction of the errata is executed by a modulo-2 addition of an errata pattern e(x) and the receiving stream r(x) standing by until the errata calculation is finished, which can be expressed by as the following equation (9).

    c(x)=r(x)+e(x)                                             (9)

Accordingly, since the conventional Reed-Solomon decoder constructed according to the algorithm as above uses a multiplier for each block for obtaining the ELP, the EEP, the errata values and the errata locations, the circuit construction is complicated and occupies considerable chip area.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a circuit for calculating an ELP and EEP, having both a simple construction and calculating method.

It is another object of the present invention to provide a Reed-Solomon decoder using the circuit for calculating the ELP and EEP.

To accomplish the above object, there is provided a circuit for calculating an ELP and an EEP comprising: first storage means for storing a syndrome value, a coefficient value of the ELP, a discrepancy value and a shortened code size; second storage means for storing the coefficient values of the ELP, the reciprocal value of the discrepancy, the discrepancy value, the coefficient values of the ELP and the values obtained by differentiating the coefficient values of the ELP; first selecting means for selectively outputting the values stored in the first storage means in response to control signals; second selecting means for selectively outputting the values stored in the second storage means in response to the control signals; multiplying means for multiplying the values selected by the first and second selecting means; third selecting means for selectively outputting the results multiplied by the multiplying means in response to the control signals; and third storage means for storing the resultant values selectively output by the third selecting means.

The multiplying means includes: a first multiplier for sequentially multiplying the output signal of the first selecting means by the high and low bits of the output signal from the second selecting means; fourth storage means for storing the result of multiplying the high bits of the second selecting means by the output signal of the first selecting means calculated by the first multiplier; and adding means for adding the result values stored in the fourth storage means to the result value obtained by multiplying the low bits from the second selecting means by the output signal of the first selecting means calculated by the first multiplier.

To accomplish the above objects, there is provided a method for calculating an ELP and an EEP including the steps of: resetting in response to a first control signal; obtaining the ELP by repeatedly executing the steps of calculating a discrepancy in response to a second control signal, calculating the coefficient values of the ELP in response to a fourth control signal, and calculating correction terms in response to a third control signal, during a clock period of twice an errata correction capability; resetting in response to the first control signal; calculating the coefficient values of the EEP by repeatedly executing the step of calculating the coefficient values of the EEP in response to said second control signal during the clock period being twice the errata correction capability; multiplying the size of a shortened code by the differentiated coefficient values of the ELP in response to a fifth control signal; and multiplying the size of the shortened code by the coefficient values of the ELP in response to a sixth control signal.

To accomplish another object, there is provided a Reed-Solomon decoder according to the present invention including: a circuit for calculating an ELP and an EEP; and a circuit for calculating errata values and the roots of the ELP by inputting the coefficient values of the ELP and the EEP calculated by the circuit for calculating the ELP and the EEP,

wherein said circuit for calculating the ELP and the EEP comprises: first storage means for storing a syndrome value, coefficient values of the ELP, a discrepancy value and the size of a shortened code; second storage means for storing the coefficient values of the ELP, the reciprocal value of the discrepancy the discrepancy value, the coefficient values of the ELP and the values obtained by differentiating the coefficient values of the ELP; first selecting means for selectively outputting the values stored in the first storage means in response to the control signals; second selecting means for selectively outputting the values stored in the second storage means in response to the control signals; multiplication means for multiplying the values selected by the first and second selecting means; third selecting means for selectively outputting the results multiplied by the multiplication means in response to the control signals; and third storage means for storing the multiplied result from the third selecting means.

BRIEF DESCRIPTION OF THE DRAWINGS

The above objects and advantages of the present invention will become more apparent by describing in detail a preferred embodiment thereof with reference to the attached drawings in which:

FIG. 1 is a block diagram of a conventional Reed-Solomon decoder;

FIG. 2 is a flow chart of a conventional Berlekamp-Messay Algorithm (BMA);

FIG. 3 is a block diagram of the Reed-Solomon decoder of the present invention;

FIG. 4 is a block diagram of the circuit for calculating the syndrome of the Reed-Solomon decoder of the present invention;

FIG. 5 is a block diagram of the circuit for calculating the ELP and EEP of the Reed-Solomon decoder of the present invention;

FIG. 6 is a diagram showing operation timing of the block diagram shown in FIG. 5;

FIG. 7 is a block diagram of a multiplier shown in FIG. 5;

FIG. 8 is a block diagram of the circuit for calculating the roots of the ELP of the Reed-Solomon decoder of the present invention; and

FIG. 9 is a block diagram of the circuit for calculating the errata values of the ELP of the Reed-Solomon decoder of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The Reed-Solomon decoder of the present invention is explained hereinafter with reference to the attached drawings.

As shown in FIG. 3, the Reed-Solomon decoder includes syndrome calculating circuit 100, ELP and EEP calculating circuit 110, circuit 120 for calculating the errata value and the root of the ELP and control signal generating circuit 130.

The Reed-Solomon decoder of the present invention incorporates the ELP and EEP calculating circuit into one block, thereby sharing a multiplier unlike conventional Reed-Solomon decoders.

As shown in FIG. 4., the syndrome calculating circuit 100 of FIG. 3 includes modulo-2 adders 140, multipliers 150 and syndrome value storages 160.

Syndrome can be obtained by substituting α^(i) (1≦i≦2t) which are elements of GF (2^(m)) in a receiving stream (r(x))

FIG. 5 is a detailed block diagram of the ELP and EEP calculating circuit 110 shown in FIG. 3.

As shown in FIG. 5, the ELP and EEP calculating circuit 110 includes registers 200, 210 and 260, multiplexers 220 and 230, demultiplexer 250 and multiplier 240.

The ELP and EEP calculating circuit 110 of the present invention constructed as described above, responds to first to sixth control signals (CS1, CS2, CS3, CS4, CS5 and CS6) to perform an operation. Therefore, control signal of 3 bits is needed to differentiate the six control signals.

The operation of the ELP and EEP calculating circuit shown in FIG. 5 can now be explained with reference to FIG. 6.

First of all, the control signals (CS1-CS6) are sequentially generated one per clock period. Multiplexers 220 and 230 transmit the value of "0" stored in registers 200 and 210 to multiplier 240 in response to the first control signal (CS1). Namely, multiplier 240 is reset. In order to calculate the coefficient values of the EEP and the discrepancy (d_(n)), multiplexers 220 and 230 transmit the coefficient values (σ_(i)) of the ELP and the syndrome value (s_(n-i)) from registers 200 and 210 to multiplier 240 in response to the second control signal (CS2). Multiplier 240 multiplies these values to transmit the multiplied values to demultiplexer 250. The values are stored in register 260. In order to calculate the coefficient values (σ.sub.(x).sup.(n+1) of the ELP, multiplexers 220 and 230 output the discrepancy (d_(n)) value and correction terms (b.sub.(x).sup.(n)) stored in registers 200 and 210 to multiplier 240 in response to the fourth control signal (CS4). Multiplier 240 multiplies these values to transmit the multiplied values to demultiplexer 250. The values are stored in register 260. In order to calculate the correction terms (b.sub.(x).sup.(n+1)), the discrepancy (d_(n) ⁻¹) and the coefficient values (σ.sub.(x).sup.(n)) of the ELP stored in registers 200 and 210 are transmitted to multiplier 240 via multiplexers 220 and 230 in response to the third control signal (CS3). Multiplier 240 multiplies these values to transmit the multiplied values to demultiplexer 250. Register 260 stores the resultant value output from demultiplexer 250. The operation according to control signals CS2, CS4 and CS3 is repeatedly carried out 2t times to obtain the final ELP. Therefore, 3 clock periods are needed to obtain the coefficients of one ELP and 3×2t clock periods are needed to obtain the coefficients of 2t ELP.

Next, to calculate the EEP, the circuit is reset in response to the first control signal (CS1). Then, to calculate the coefficient values of the EEP, the syndrome value (s_(n-i)) and the coefficient values (σ_(i)) of the ELP are transmitted from registers 200 and 210 to multiplier 240 via multiplexers 220 and 230 in response to the second control signal (CS2). Multiplier 240 receives these values and performs the multiplication to transmit the multiplied values to register 260 via demultiplexer 250. Namely, to obtain the coefficient values of one EEP, one clock period is needed and in order to obtain 2t EEP, 2t clock periods are needed.

After the ELP and the EEP are obtained as above, premultipication is executed as follows. That is, multiplexers 220 and 230 transmit the size of a shortened code and the coefficient values of the ELP from registers 200 and 210 to multiplier 240 in response to the fifth control signal (CS5). Multiplier 240 multiplies these values to store the resultant values in register 260 via demultiplexer 250. The values (σ') obtained by differentiating the coefficient values of the ELP and the size of the shortened code are transmitted from registers 200 and 210 to multiplier 240 in response to the sixth control signal (CS6). Multiplier 240 multiplies these values to store the resultant values in register 260 via demultiplexer 250.

FIG. 7 is a detailed block diagram of the multiplier of the ELP and EEP calculating circuit 110 shown in FIG. 5 and the multiplier for performing the multiplication in response to the first control signal (CS1).

The multiplier shown in FIG. 7 includes a multiplier 300, a register 310 and an adder 320.

Multiplier 300 performs the multiplication of vector A and vector B. An example of such a multiplication follows.

The vector A of 8-tuple is multiplied by the vector B of 4-tuple and the vectors A and B can be expressed as follows, respectively.

    A=a.sub.0 +a.sub.1 x+a.sub.2 x.sup.2 +a.sub.3 x.sup.3 +a.sub.4 x.sup.4 +a.sub.5 x.sup.5 +a.sub.6 x.sup.6 +a.sub.7 x.sup.7

    B=b.sub.0 +b.sub.1 x+b.sub.2 x.sup.2 +b.sub.3 x.sup.3 +b.sub.4 x.sup.4 +b.sub.5 x.sup.5 +b.sub.6 x.sup.6 +b.sub.7 x.sup.7

The multiplication of the vector A by the vector B is performed as in the following equation.

If the output of multiplier 300 is Q, Q can be expressed as follow. ##EQU6##

The multiplication (A×B₄) during the first clock period is performed according to equation (10) and the multiplication (A×B₄) during the second clock period is performed according to equation (11). Register 310 stores the result calculated during the first clock period until the multiplication during the second clock period is finished. The frequency of the clock for driving register 310 is twice that of a system clock of the decoder. Therefore, time needed to perform the multiplication is one system clock period. Namely, register 310 stores the result calculated during the first clock period to maintain the result until the operation is performed during the second clock period.

If the result stored in register 310 is M and the result directly output from multiplier 300 is N, adder 320 performs addition as shown in the following equation. Namely, the adder for adding random 8-tuple vectors M to N on the Galois Field performs the operation as shown in the following equation. ##EQU7##

When the multiplication is performed as above, a lot of gates can be reduced as shown in the following table, as compared with the conventional multiplier.

    ______________________________________                                                    Classification                                                                   Conventional                                                                             Multiplier of the                                       Gate         multiplier                                                                               present invention                                       ______________________________________                                         AND gate     64        32                                                      XOR gate     83        48                                                      Register      0         8                                                      ______________________________________                                    

FIG. 8 is a block diagram of the circuit for calculating the roots of the ELP.

As shown in FIG. 8, the circuit for calculating the roots of the ELP includes register 400, multiplier 410, register 420 and modulo-2 adder 430.

Multiplier 410 multiplies the coefficient values (σ₁, . . . , σ_(m)) of the ELP by α₁, . . . , α_(m) which are the elements of GF (2^(m)) to store the calculated values in register 420. The values are added by modulo-2 adder 430 to finally calculate the roots of the ELP and output the resultant values. Further, the output signal of multiplier 410 is stored in register 420 and then the stored signal is fed back to be multiplied again. The time needed to calculate the roots of the ELP is n symbol clocks.

FIG. 9 is a block diagram of the circuit of calculating the errata values for the ELP.

The circuit of calculating the errata values for the ELP, as shown in FIG. 9, includes register 500, multiplier 510, register 520, modulo-2 adder 530, register 600, multiplier 610, register 620, modulo-2 adder 630, look-up table 640 and multiplier 650.

As shown in FIG. 9, the constructions of register 500, multiplier 510, register 520 and modulo-2 adder 530 are identical to the constructions of those in the circuit of calculating the roots of the ELP and the resultant values output from modulo-2 adder 530 become the roots of the ELP and are input to look-up table 640 to output the reciprocal values of the roots of the ELP. Register 600 stores the coefficient values- of the ELP and multiplier 610 multiplies the values by α₁, . . . , α_(m) which are the elements of GF (2^(m)). The resultant values are stored in register 620 and then fed back to be multiplied by multiplier 610 or are input to modulo-2 adder 630 to be operated on. The output signal of modulo-2 adder 630 is multiplied by the output signal of look-up table 640 in multiplier 650 in order to obtain the errata values. This operation is performed to obtain the final errata values.

As described above, the Reed-Solomon decoder of the present invention shares the multiplier of the circuit for obtaining the ELP and the EEP. Thus it is possible to simplify the circuit construction to thereby reduce the chip area. 

What is claimed is:
 1. A circuit for calculating an ELP and an EEP comprising:first storage means for storing a syndrome value, coefficient values of the ELP, a discrepancy value and a shortened code size; second storage means for storing the coefficient values of the ELP, the reciprocal value of the discrepancy, the discrepancy value, the coefficient values of the ELP and the values obtained by differentiating the coefficient values of the ELP; first selecting means for selectively outputting the values stored in said first storage means in response to control signals; second selecting means for selectively outputting the values stored in said second storage means in response to the control signals; multiplying means for multiplying the values selected by the first and second selecting means; third selecting means for selectively outputting the resultant values multiplied by said multiplying means in response to the control signals; and third storage means for storing the resultant values selectively output by said third selecting means.
 2. A circuit for calculating an ELP and an EEP according to claim 1, wherein said multiplying means comprises:a first multiplier for sequentially multiplying the output signal of said first selecting means by high bits and low bits of the output signal of said second selecting means; fourth storage means for storing the result of multiplying the high bits of said second selecting means by the output signal of said first selecting means calculated by the first multiplier; and adding means for adding the result values stored in said fourth storage means to the result obtained by multiplying the low bits of said second selecting means by the output signal of said first selecting means calculated by said first multiplier.
 3. A method of calculating an ELP and an EEP comprising the steps of:resetting in response to a first control signal; obtaining the ELP by repeatedly executing the steps of calculating a discrepancy in response to a second control signal, calculating the coefficient values of the ELP in response to a fourth control signal, and calculating correction terms in response to a third control signal; resetting in response to said first control signal; calculating the coefficient values of the EEP by repeatedly executing the step of calculating the coefficient values of the EEP in response to said second control signal; multiplying the size of a shortened code by the differentiated coefficient values of the ELP in response to a fifth control signal; and multiplying the size of the shortened code by the coefficient values of the ELP in response to a sixth control signal.
 4. A Reed-Solomon decoder comprising:a circuit for calculating an ELP and an EEP; and a circuit for calculating errata values and the roots of the ELP for calculating the errata values and the roots of the ELP by inputting the coefficient values of the ELP and the EEP calculated by the circuit for calculating the ELP and the EEP, wherein said circuit for calculating the ELP and the EEP comprises:first storage means for storing a syndrome value, coefficient values of the ELP, a discrepancy value and the size of a shortened code; second storage means for storing the coefficient values of the ELP, the inverse value of the discrepancy, the discrepancy value, the coefficient values of the ELP and the values obtained by differentiating the coefficient values of the ELP; first selecting means for selectively outputting the values stored in said first storage means in response to control signals; second selecting means for selectively outputting the values stored in said second storage means in response to the control signals; multiplication means for multiplying the values selected by the first and second selecting means; third selecting means for selectively outputting the resultant values multiplied by multiplication means in response to the control signals; and third storage means for storing the resultant values selectively output by the third selecting means.
 5. A Reed-Solomon decoder according to claim 4, wherein said multiplying means comprises:a first multiplier for sequentially multiplying the output signal of said first selecting means by high bits and low bits of the output signal of said second selecting means by low bits thereof; fourth storage means for storing the resultant values of the multiplication of the high bits of said second selecting means by the output signal of said first selecting means calculated by the first multiplier; and adding means for adding the resultant values stored in said fourth storage means to the resultant values obtained by multiplying the low bits of said second selecting means by the output signal of said first selecting means calculated by said first multiplier. 